
from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(被动技能):
    名称 = '剑影太刀精通'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10

    # def 加成倍率(self, 武器类型):
    #    if self.等级 == 0:
    #        return 1.0
    #    else:
    #        return round(1.0 + 0.02 * self.等级, 5)

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.00 + 0.02 * self.等级, 5)


class 技能1(被动技能):
    名称 = '幻鬼之力'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.10 + 0.02 * self.等级, 5)


class 技能2(被动技能):
    名称 = '鬼夜'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.035 + 0.02 * self.等级, 5)


class 技能3(被动技能):
    名称 = '鬼咲'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 技能4(被动技能):
    名称 = '睥睨万物'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能5(主动技能):
    名称 = '鬼步'
    所在等级 = 15

    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    CD = 6.0
    TP成长 = 0.10
    TP上限 = 7
    data0 = [int(i*1.101) for i in [0, 746, 822, 898, 973, 1050, 1125, 1201, 1277, 1352, 1428, 1504, 1580, 1656, 1731, 1807, 1884, 1959, 2035, 2110, 2186, 2262, 2337, 2414, 2489, 2565, 2641, 2716, 2792, 2867, 2944, 3020, 3095, 3171, 3246, 3323, 3399,
             3474, 3550, 3626, 3701, 3778, 3853, 3929, 4005, 4080, 4156, 4231, 4308, 4384, 4459, 4535, 4610, 4686, 4763, 4838, 4914, 4990, 5065, 5142, 5217, 5293, 5369, 5444, 5520, 5595, 5672, 5748, 5823, 5899, 5974]]
    hit0 = 3
    MP = [20, 210]


class 技能6(主动技能):
    名称 = '鬼连斩'
    所在等级 = 15

    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    CD = 5.0
    TP成长 = 0.10
    TP上限 = 7
    data0 = [int(i*1.102) for i in [0, 605, 666, 728, 789, 851, 912, 973, 1035, 1096, 1158, 1219, 1280, 1342, 1403, 1466, 1526, 1587, 1650, 1711, 1773, 1834, 1895, 1957, 2018, 2080, 2141, 2202, 2264, 2325, 2387, 2448, 2509, 2571, 2632, 2694,
             2755, 2816, 2878, 2939, 3001, 3062, 3123, 3185, 3246, 3309, 3370, 3430, 3493, 3554, 3616, 3677, 3738, 3800, 3861, 3923, 3984, 4045, 4107, 4168, 4230, 4291, 4352, 4414, 4475, 4537, 4598, 4659, 4721, 4782, 4844]]
    data1 = [int(i*1.102) for i in [0, 726, 800, 873, 947, 1021, 1095, 1169, 1242, 1315, 1389, 1463, 1537, 1611, 1685, 1759, 1832, 1905, 1979, 2053, 2127, 2201, 2274, 2348, 2422, 2495, 2569, 2643, 2716, 2790, 2864, 2938, 3012, 3085, 3158, 3232,
             3306, 3380, 3454, 3528, 3602, 3676, 3748, 3822, 3896, 3970, 4044, 4118, 4191, 4265, 4338, 4412, 4486, 4560, 4633, 4707, 4781, 4855, 4928, 5002, 5075, 5149, 5223, 5297, 5371, 5445, 5519, 5591, 5665, 5739, 5813]]
    data2 = [int(i*1.102) for i in [0, 1089, 1201, 1311, 1421, 1532, 1643, 1753, 1863, 1974, 2085, 2195, 2306, 2416, 2527, 2638, 2748, 2858, 2970, 3080, 3190, 3302, 3412, 3522, 3633, 3744, 3854, 3965, 4075, 4186, 4296, 4407, 4517, 4628, 4739,
             4849, 4959, 5071, 5181, 5291, 5402, 5513, 5623, 5734, 5844, 5955, 6066, 6176, 6286, 6398, 6508, 6618, 6730, 6840, 6950, 7060, 7172, 7282, 7392, 7503, 7614, 7724, 7835, 7945, 8056, 8167, 8277, 8387, 8499, 8609, 8719]]
    hit0 = 1
    hit1 = 1
    hit2 = 1

    # TP同鬼连斩
    MP = [20, 210]


class 技能7(被动技能):
    名称 = '鬼连斩：极'
    所在等级 = 30

    额外加成 = 1

    等级上限 = 1
    等级精通 = 1

    data0 = [int(i*1.101) for i in [0, 926, 1020, 1113, 1208, 1302, 1395, 1489, 1583, 1677, 1771, 1865, 1959, 2053, 2147, 2241, 2335, 2428, 2523, 2617, 2710, 2805, 2899, 2992, 3087, 3180, 3274, 3368, 3462, 3556, 3650, 3744, 3838, 3932, 4026,
             4120, 4214, 4307, 4402, 4496, 4589, 4684, 4778, 4871, 4966, 5059, 5153, 5247, 5341, 5435, 5529, 5623, 5717, 5811, 5905, 5999, 6093, 6186, 6281, 6375, 6468, 6563, 6657, 6750, 6845, 6938, 7032, 7126, 7220, 7314, 7408]]
    hit0 = 3

    def 获取百分比(self, lv):
        return self.data0[lv] * self.hit0 * self.额外加成


class 技能8(主动技能):
    名称 = '幻鬼：一闪'
    所在等级 = 20

    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    CD = 6
    TP成长 = 0.10
    TP上限 = 7
    data0 = [int(i*1.10) for i in [0, 2498, 2753, 3006, 3259, 3514, 3767, 4020, 4273, 4528, 4781, 5034, 5289, 5542, 5795, 6048, 6303, 6556, 6809, 7063, 7317, 7570, 7823, 8078, 8331, 8584, 8838, 9092, 9345, 9598, 9853, 10106, 10359, 10613, 10867, 11120, 11373, 11628,
             11881, 12134, 12388, 12642, 12895, 13148, 13402, 13656, 13909, 14163, 14417, 14670, 14923, 15177, 15431, 15684, 15938, 16192, 16445, 16698, 16952, 17206, 17459, 17713, 17967, 18220, 18473, 18727, 18981, 19234, 19488, 19742, 19995]]
    hit0 = 1

    MP = [32, 336]


class 技能9(主动技能):
    名称 = '鬼连牙'
    所在等级 = 25

    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    CD = 8.0
    TP成长 = 0.10
    TP上限 = 7
    data0 = [int(i*1.101) for i in [0, 4528, 4988, 5448, 5907, 6367, 6827, 7286, 7745, 8204, 8664, 9124, 9583, 10043, 10502, 10962, 11422, 11880, 12340, 12799, 13259, 13719, 14178, 14638, 15098, 15556, 16016, 16475, 16935, 17395, 17854, 18314, 18774, 19232, 19692, 20151,
             20611, 21071, 21530, 21990, 22450, 22908, 23368, 23827, 24287, 24747, 25206, 25666, 26125, 26585, 27044, 27503, 27963, 28422, 28882, 29342, 29801, 30261, 30719, 31179, 31639, 32098, 32558, 33018, 33477, 33937, 34395, 34855, 35315, 35774, 36234]]
    hit0 = 1

    MP = [46, 483]


class 技能10(主动技能):
    名称 = '幻鬼：连斩'
    所在等级 = 25

    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    CD = 8.0
    TP成长 = 0.10
    TP上限 = 7
    data0 = [int(i*1.101) for i in [0, 612, 674, 736, 798, 861, 922, 985, 1046, 1109, 1171, 1233, 1295, 1358, 1419, 1482, 1543, 1606, 1668, 1730, 1792, 1855, 1916, 1979, 2040, 2103, 2165, 2227, 2289, 2352, 2413, 2476, 2537, 2600, 2662, 2724,
             2786, 2849, 2910, 2973, 3034, 3097, 3159, 3221, 3283, 3346, 3407, 3470, 3532, 3594, 3656, 3718, 3780, 3843, 3904, 3967, 4029, 4091, 4153, 4216, 4277, 4340, 4401, 4464, 4526, 4588, 4650, 4713, 4774, 4837, 4898]]
    data1 = [int(i*1.101) for i in [0, 816, 899, 981, 1065, 1147, 1230, 1313, 1396, 1478, 1562, 1644, 1727, 1810, 1893, 1975, 2059, 2141, 2224, 2308, 2390, 2472, 2556, 2638, 2721, 2805, 2887, 2969, 3053, 3136, 3218, 3300, 3384, 3466, 3549, 3633,
             3715, 3797, 3881, 3964, 4046, 4130, 4212, 4294, 4378, 4461, 4543, 4627, 4709, 4792, 4875, 4958, 5040, 5124, 5206, 5289, 5372, 5455, 5537, 5621, 5703, 5786, 5869, 5952, 6034, 6118, 6200, 6283, 6366, 6449, 6531]]
    data2 = [int(i*1.101) for i in [0, 1020, 1124, 1227, 1331, 1434, 1538, 1641, 1745, 1849, 1952, 2056, 2159, 2262, 2366, 2470, 2573, 2677, 2780, 2884, 2987, 3091, 3195, 3298, 3401, 3505, 3608, 3713, 3816, 3919, 4023, 4126, 4229, 4334, 4437,
             4541, 4644, 4747, 4851, 4955, 5059, 5162, 5265, 5369, 5472, 5577, 5680, 5783, 5887, 5990, 6093, 6197, 6301, 6405, 6508, 6611, 6715, 6818, 6923, 7026, 7129, 7233, 7336, 7439, 7544, 7647, 7751, 7854, 7957, 8061, 8165]]
    data3 = [int(i*1.101) for i in [0, 1633, 1798, 1964, 2130, 2295, 2461, 2627, 2792, 2958, 3124, 3289, 3455, 3621, 3786, 3952, 4118, 4283, 4449, 4615, 4780, 4946, 5112, 5277, 5443, 5609, 5774, 5940, 6106, 6271, 6437, 6602, 6768, 6934, 7099, 7265, 7431,
             7596, 7762, 7928, 8093, 8259, 8425, 8590, 8756, 8922, 9087, 9253, 9419, 9584, 9750, 9916, 10081, 10247, 10413, 10578, 10744, 10910, 11075, 11241, 11407, 11572, 11738, 11904, 12069, 12235, 12402, 12566, 12732, 12899, 13063]]
    hit0 = 1
    hit1 = 1
    hit2 = 1
    hit3 = 1

    MP = [60, 600]


class 技能11(主动技能):
    名称 = '共鸣：离魂一闪'
    所在等级 = 30

    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    CD = 12.0
    TP成长 = 0.10
    TP上限 = 7
    data0 = [int(i*1.104) for i in [0, 1907, 2100, 2294, 2487, 2681, 2874, 3068, 3261, 3455, 3648, 3842, 4035, 4229, 4422, 4616, 4809, 5003, 5196, 5390, 5583, 5777, 5970, 6164, 6357, 6551, 6743, 6936, 7130, 7323, 7517, 7710, 7904, 8097, 8291, 8484, 8678, 8871,
             9065, 9258, 9452, 9645, 9839, 10032, 10226, 10419, 10613, 10806, 11000, 11193, 11387, 11580, 11774, 11967, 12161, 12354, 12548, 12741, 12935, 13128, 13322, 13515, 13709, 13902, 14096, 14289, 14483, 14676, 14870, 15063, 15256]]
    data1 = [int(i*1.104) for i in [0, 4449, 4901, 5352, 5804, 6255, 6707, 7158, 7609, 8061, 8512, 8964, 9415, 9867, 10318, 10770, 11221, 11673, 12124, 12576, 13027, 13479, 13930, 14382, 14833, 15285, 15735, 16186, 16638, 17089, 17541, 17992, 18444, 18895, 19347, 19798,
             20250, 20701, 21153, 21604, 22056, 22507, 22959, 23410, 23862, 24313, 24765, 25216, 25668, 26119, 26570, 27022, 27473, 27925, 28376, 28828, 29279, 29731, 30182, 30634, 31084, 31536, 31987, 32439, 32890, 33341, 33793, 34244, 34696, 35147, 35599]]
    hit0 = 1
    hit1 = 1

    MP = [61, 640]


class 技能12(主动技能):
    名称 = '魂破斩'
    所在等级 = 35

    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    CD = 12
    TP成长 = 0.10
    TP上限 = 5
    data0 = [int(i*1.113) for i in [0, 7286, 8025, 8763, 9503, 10242, 10981, 11721, 12460, 13198, 13938, 14677, 15416, 16156, 16895, 17634, 18374, 19112, 19851, 20591, 21330, 22069, 22809, 23547, 24286, 25026, 25765, 26504, 27244, 27982, 28721, 29461, 30200, 30939, 31679, 32418,
             33156, 33896, 34635, 35374, 36114, 36853, 37591, 38331, 39070, 39809, 40549, 41288, 42026, 42766, 43505, 44244, 44984, 45723, 46462, 47201, 47940, 48679, 49419, 50158, 50897, 51637, 52375, 53114, 53854, 54593, 55332, 56072, 56810, 57549, 58289]]
    hit0 = 1

    是否有护石 = 1

    MP = [129, 1083]
    无色消耗 = 1

    def 装备护石(self):
        self.power0 *= 1.24
        self.CDR *= 0.89


class 技能13(主动技能):
    名称 = '共鸣：鬼灵斩'
    所在等级 = 35

    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    CD = 15.0
    TP成长 = 0.10
    TP上限 = 5
    data0 = [int(i*1.113) for i in [0, 8158, 8986, 9814, 10642, 11470, 12298, 13126, 13953, 14781, 15609, 16436, 17264, 18092, 18920, 19748, 20575, 21403, 22231, 23059, 23887, 24715, 25542, 26370, 27197, 28025, 28853, 29681, 30509, 31337, 32165, 32991, 33819, 34647, 35475, 36303,
             37131, 37959, 38787, 39614, 40442, 41269, 42097, 42925, 43753, 44581, 45409, 46236, 47064, 47892, 48720, 49548, 50375, 51203, 52031, 52858, 53686, 54514, 55342, 56170, 56998, 57826, 58652, 59480, 60308, 61136, 61964, 62792, 63620, 64448, 65275]]
    hit0 = 1

    MP = [129, 1083]
    无色消耗 = 1


class 技能14(主动技能):
    名称 = '幻鬼：回天'
    所在等级 = 40

    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    CD = 20.0
    TP成长 = 0.10
    TP上限 = 5
    data0 = [int(i*1.102) for i in [0, 3762, 4144, 4525, 4908, 5289, 5671, 6052, 6434, 6816, 7198, 7579, 7961, 8342, 8725, 9106, 9488, 9869, 10251, 10633, 11015, 11396, 11778, 12159, 12542, 12923, 13305, 13686, 14068, 14450, 14832, 15213, 15595, 15976, 16359, 16740, 17122,
             17503, 17885, 18267, 18649, 19030, 19412, 19793, 20176, 20557, 20939, 21320, 21702, 22084, 22466, 22847, 23229, 23610, 23993, 24374, 24756, 25137, 25519, 25901, 26283, 26664, 27046, 27427, 27810, 28191, 28573, 28954, 29336, 29718, 30100]]
    data1 = [int(i*1.102) for i in [0, 5643, 6216, 6789, 7361, 7933, 8506, 9079, 9651, 10223, 10797, 11369, 11941, 12513, 13087, 13659, 14231, 14804, 15377, 15949, 16522, 17094, 17667, 18240, 18812, 19384, 19958, 20530, 21102, 21675, 22248, 22820, 23392, 23966, 24538, 25110,
             25682, 26256, 26828, 27400, 27973, 28546, 29118, 29691, 30263, 30836, 31409, 31981, 32553, 33127, 33699, 34271, 34843, 35417, 35989, 36561, 37134, 37707, 38279, 38851, 39424, 39997, 40569, 41142, 41715, 42287, 42860, 43432, 44005, 44578, 45150]]
    hit0 = 1
    hit1 = 1

    是否有护石 = 1

    MP = [170, 1428]
    无色消耗 = 1

    def 装备护石(self):
        self.power0 *= 1.43


class 技能15(主动技能):
    名称 = '冥灵断魂斩'
    所在等级 = 45

    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    data0 = [int(i*1.108) for i in [0, 22211, 24465, 26718, 28972, 31226, 33478, 35732, 37986, 40239, 42492, 44745, 46999, 49253, 51505, 53759, 56013, 58266, 60520, 62772, 65026, 67280, 69533, 71787, 74040, 76293, 78547, 80800, 83053, 85307, 87560, 89814, 92068, 94320, 96574, 98827, 101081, 103335,
             105587, 107841, 110094, 112348, 114601, 116854, 119108, 121362, 123614, 125868, 128121, 130375, 132629, 134881, 137135, 139389, 141642, 143896, 146148, 148402, 150656, 152909, 155162, 157416, 159669, 161923, 164175, 166429, 168683, 170936, 173190, 175444, 177696]]
    hit0 = 1

    是否有护石 = 1

    MP = [299, 2511]
    无色消耗 = 2

    def 装备护石(self):
        self.power0 *= 1.23


class 技能16(主动技能):
    名称 = '冥夜鬼天杀'
    所在等级 = 50

    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    CD = 145.0
    data0 = [int(i*1.121) for i in [0, 14871, 18320, 21767, 25217, 28664, 32112, 35561, 39009, 42458, 45906, 49355, 52803, 56252, 59700, 63148, 66597, 70045, 73494, 76942, 80391, 83839, 87288, 90736, 94184, 97633, 101081, 104530, 107978, 111427, 114875, 118324, 121772, 125220, 128669, 132117, 135566,
             139014, 142463, 145910, 149360, 152807, 156257, 159704, 163152, 166601, 170049, 173498, 176946, 180395, 183843, 187292, 190740, 194188, 197637, 201085, 204534, 207982, 211431, 214879, 218328, 221776, 225224, 228673, 232121, 235570, 239018, 242467, 245915, 249364, 252812]]
    hit0 = 4

    MP = [998, 8383]
    无色消耗 = 5


class 技能17(主动技能):
    名称 = '幻鬼：奈落'
    所在等级 = 60

    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    CD = 20.0
    TP成长 = 0.10
    TP上限 = 5
    data0 = [int(i*1.102) for i in [0, 12398, 13654, 14913, 16171, 17428, 18686, 19944, 21201, 22459, 23717, 24974, 26233, 27490, 28748, 30006, 31263, 32521, 33779, 35036, 36294, 37552, 38809, 40068, 41326, 42583, 43841, 45098, 46356, 47614, 48871, 50129, 51388, 52645, 53903,
             55161, 56418, 57676, 58934, 60191, 61449, 62706, 63964, 65223, 66480, 67738, 68996, 70253, 71511, 72769, 74026, 75284, 76543, 77800, 79058, 80315, 81573, 82831, 84088, 85346, 86604, 87861, 89119, 90378, 91635, 92893, 94151, 95408, 96666, 97924, 99181]]
    hit0 = 1

    是否有护石 = 1

    MP = [334, 935]
    无色消耗 = 2

    def 装备护石(self):
        self.power0 *= 1.22
        self.CDR *= 0.85


class 技能18(主动技能):
    名称 = '共鸣：聚渊'
    所在等级 = 70

    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    CD = 50.0
    TP成长 = 0.10
    TP上限 = 5
    data0 = [int(i*1.12) for i in [0, 3082, 3395, 3708, 4022, 4334, 4647, 4960, 5272, 5585, 5898, 6210, 6523, 6836, 7150, 7462, 7775, 8088, 8400, 8713, 9026, 9338, 9651, 9964, 10277, 10589, 10903, 11216, 11528, 11841, 12154, 12466, 12779, 13092, 13405, 13717, 14030,
             14344, 14656, 14969, 15282, 15594, 15907, 16220, 16533, 16845, 17158, 17472, 17784, 18097, 18410, 18722, 19035, 19348, 19661, 19973, 20286, 20599, 20911, 21225, 21538, 21851, 22163, 22476, 22789, 23101, 23414, 23727, 24039, 24353, 24666]]
    data1 = [int(i*1.12) for i in [0, 12332, 13584, 14835, 16086, 17337, 18588, 19839, 21091, 22342, 23593, 24844, 26095, 27347, 28598, 29848, 31100, 32351, 33603, 34854, 36104, 37356, 38607, 39858, 41110, 42361, 43611, 44863, 46114, 47366, 48617, 49867, 51119, 52370, 53621,
             54873, 56123, 57375, 58626, 59877, 61129, 62379, 63630, 64882, 66133, 67385, 68635, 69886, 71138, 72389, 73640, 74891, 76142, 77393, 78645, 79896, 81148, 82398, 83649, 84901, 86152, 87403, 88654, 89905, 91157, 92408, 93659, 94910, 96161, 97412, 98664]]
    data2 = [int(i*1.12) for i in [0, 15416, 16980, 18544, 20108, 21671, 23236, 24799, 26364, 27927, 29492, 31055, 32620, 34183, 35748, 37311, 38876, 40439, 42003, 43567, 45131, 46695, 48259, 49823, 51387, 52951, 54515, 56079, 57643, 59206, 60771, 62334, 63899, 65462, 67027, 68590, 70155,
             71718, 73283, 74846, 76411, 77974, 79539, 81102, 82666, 84230, 85794, 87358, 88922, 90486, 92050, 93614, 95178, 96741, 98306, 99871, 101434, 102999, 104562, 106126, 107690, 109254, 110818, 112382, 113946, 115510, 117074, 118638, 120201, 121766, 123329]]
    hit0 = 1
    hit1 = 1
    hit2 = 1

    是否有护石 = 1

    power2 = 1

    MP = [686, 1440]
    无色消耗 = 3

    def 装备护石(self):
        self.power2 *= 1.36 * 1.20


class 技能19(主动技能):
    名称 = '幻鬼：大回天'
    所在等级 = 75

    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    CD = 40.0
    data0 = [int(i*1.113) for i in [0, 14801, 16302, 17803, 19305, 20806, 22307, 23810, 25311, 26812, 28314, 29816, 31317, 32819, 34320, 35821, 37324, 38825, 40326, 41828, 43330, 44831, 46332, 47834, 49335, 50837, 52339, 53840, 55341, 56844, 58345, 59846, 61348, 62849, 64351, 65853,
             67354, 68855, 70357, 71859, 73360, 74862, 76363, 77864, 79367, 80868, 82369, 83870, 85373, 86874, 88375, 89877, 91378, 92880, 94382, 95883, 97384, 98887, 100388, 101889, 103391, 104892, 106394, 107896, 109397, 110898, 112401, 113902, 115403, 116904, 118406]]
    hit0 = 3
    倍率 = 1

    是否有护石 = 1

    MP = [568, 4402]
    无色消耗 = 3

    def 装备护石(self):
        self.power0 = 1.36

    def 等效百分比(self, **argv):
        if self.等级 >= 9:
            return super().等效百分比(**argv) * 1.1
        return super().等效百分比(**argv)


class 技能20(主动技能):
    名称 = '裂魂乱舞'
    所在等级 = 80

    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    CD = 45.0
    data0 = [int(i*1.112) for i in [0, 3117, 3433, 3749, 4066, 4381, 4698, 5015, 5330, 5647, 5963, 6279, 6596, 6912, 7228, 7544, 7861, 8176, 8493, 8808, 9125, 9442, 9757, 10074, 10390, 10706, 11023, 11339, 11655, 11971, 12288, 12603, 12920, 13237, 13552, 13869, 14185,
             14501, 14818, 15134, 15450, 15766, 16083, 16398, 16715, 17032, 17347, 17664, 17980, 18296, 18613, 18929, 19245, 19561, 19878, 20193, 20510, 20827, 21142, 21459, 21775, 22091, 22408, 22724, 23040, 23356, 23673, 23988, 24305, 24622, 24937]]
    data1 = [int(i*1.112) for i in [0, 9351, 10300, 11249, 12198, 13146, 14095, 15044, 15993, 16941, 17890, 18839, 19788, 20736, 21685, 22634, 23583, 24531, 25480, 26428, 27376, 28325, 29274, 30223, 31171, 32120, 33069, 34018, 34966, 35915, 36864, 37813, 38761, 39710, 40659, 41608,
             42556, 43505, 44454, 45403, 46351, 47300, 48249, 49198, 50146, 51095, 52044, 52993, 53941, 54890, 55839, 56788, 57736, 58685, 59634, 60583, 61531, 62480, 63429, 64378, 65326, 66275, 67224, 68173, 69121, 70070, 71019, 71968, 72916, 73865, 74814]]
    data2 = [int(i*1.112) for i in [0, 12469, 13734, 14998, 16264, 17528, 18793, 20059, 21323, 22588, 23854, 25118, 26383, 27649, 28913, 30178, 31444, 32708, 33973, 35237, 36503, 37768, 39032, 40298, 41563, 42827, 44093, 45358, 46622, 47888, 49153, 50417, 51683, 52948, 54212,
             55478, 56742, 58007, 59273, 60537, 61802, 63068, 64332, 65597, 66863, 68127, 69392, 70658, 71922, 73187, 74452, 75717, 76982, 78247, 79512, 80777, 82042, 83307, 84572, 85837, 87102, 88367, 89632, 90897, 92162, 93427, 94692, 95956, 97222, 98487, 99751]]
    data3 = [int(i*1.112) for i in [0, 7793, 8583, 9374, 10164, 10955, 11745, 12537, 13327, 14117, 14908, 15698, 16489, 17280, 18071, 18861, 19652, 20442, 21232, 22023, 22815, 23605, 24395, 25186, 25976, 26767, 27558, 28349, 29139, 29930, 30720, 31510, 32301, 33092, 33883, 34673,
             35464, 36254, 37045, 37836, 38627, 39417, 40207, 40998, 41788, 42579, 43370, 44161, 44951, 45742, 46532, 47322, 48114, 48905, 49695, 50485, 51276, 52066, 52857, 53648, 54439, 55229, 56020, 56810, 57600, 58392, 59182, 59973, 60763, 61554, 62344]]
    data4 = [int(i*1.112) for i in [0, 21820, 24034, 26247, 28461, 30675, 32888, 35103, 37317, 39530, 41744, 43957, 46171, 48385, 50598, 52812, 55026, 57239, 59453, 61666, 63880, 66095, 68308, 70522, 72736, 74949, 77163, 79376, 81590, 83804, 86017, 88231, 90445, 92658, 94873, 97087, 99300, 101514,
             103727, 105941, 108155, 110368, 112582, 114796, 117009, 119223, 121436, 123650, 125865, 128078, 130292, 132506, 134719, 136933, 139146, 141360, 143574, 145787, 148001, 150215, 152428, 154642, 156857, 159070, 161284, 163497, 165711, 167925, 170138, 172352, 174566]]
    hit0 = 1
    hit1 = 1
    hit2 = 1
    hit3 = 1
    hit4 = 1

    power3 = 1
    power4 = 1

    是否有护石 = 1

    MP = [823, 6172]
    无色消耗 = 5

    def 装备护石(self):
        self.hit0 = 0
        self.hit1 = 0
        self.hit2 = 0
        self.power3 *= 2.11
        self.power4 *= 2.3


class 技能21(主动技能):
    名称 = '鬼隐·夜奈落'
    所在等级 = 85

    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    CD = 180.0
    data0 = [int(i*1.12) for i in [0, 21591, 26598, 31604, 36610, 41618, 46624, 51631, 56638, 61645, 66651, 71657, 76665, 81671, 86678, 91684, 96692, 101698, 106704, 111711, 116718, 121725, 126731, 131737, 136745, 141751, 146758, 151764, 156772, 161778, 166784, 171791, 176798, 181805, 186811, 191819, 196825,
             201831, 206838, 211845, 216852, 221858, 226865, 231872, 236878, 241885, 246891, 251899, 256905, 261912, 266918, 271926, 276932, 281938, 286945, 291952, 296959, 301965, 306971, 311979, 316985, 321992, 326999, 332006, 337012, 342018, 347026, 352032, 357039, 362045, 367053]]
    data1 = [int(i*1.12) for i in [0, 21591, 26598, 31604, 36610, 41618, 46624, 51631, 56638, 61645, 66651, 71657, 76665, 81671, 86678, 91684, 96692, 101698, 106704, 111711, 116718, 121725, 126731, 131737, 136745, 141751, 146758, 151764, 156772, 161778, 166784, 171791, 176798, 181805, 186811, 191819, 196825,
             201831, 206838, 211845, 216852, 221858, 226865, 231872, 236878, 241885, 246891, 251899, 256905, 261912, 266918, 271926, 276932, 281938, 286945, 291952, 296959, 301965, 306971, 311979, 316985, 321992, 326999, 332006, 337012, 342018, 347026, 352032, 357039, 362045, 367053]]
    data2 = [int(i*1.12) for i in [0, 21591, 26598, 31604, 36610, 41618, 46624, 51631, 56638, 61645, 66651, 71657, 76665, 81671, 86678, 91684, 96692, 101698, 106704, 111711, 116718, 121725, 126731, 131737, 136745, 141751, 146758, 151764, 156772, 161778, 166784, 171791, 176798, 181805, 186811, 191819, 196825,
             201831, 206838, 211845, 216852, 221858, 226865, 231872, 236878, 241885, 246891, 251899, 256905, 261912, 266918, 271926, 276932, 281938, 286945, 291952, 296959, 301965, 306971, 311979, 316985, 321992, 326999, 332006, 337012, 342018, 347026, 352032, 357039, 362045, 367053]]
    data3 = [int(i*1.12) for i in [0, 79167, 97525, 115883, 134241, 152599, 170957, 189315, 207673, 226031, 244389, 262747, 281104, 299462, 317820, 336177, 354535, 372893, 391251, 409609, 427967, 446324, 464682, 483040, 501398, 519756, 538114, 556472, 574830, 593188, 611546, 629904, 648261, 666619, 684977, 703335, 721692,
             740050, 758408, 776766, 795124, 813482, 831839, 850197, 868555, 886913, 905271, 923629, 941987, 960345, 978703, 997061, 1015419, 1033776, 1052134, 1070492, 1088850, 1107207, 1125565, 1143923, 1162281, 1180639, 1198996, 1217354, 1235712, 1254070, 1272428, 1290786, 1309144, 1327502, 1345860]]
    hit0 = 1
    hit1 = 1
    hit2 = 1
    hit3 = 1

    MP = [2329, 4658]
    无色消耗 = 10


class 技能22(主动技能):
    名称 = '无式·极影剑'
    所在等级 = 95

    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    CD = 60.0
    data0 = [int(i*1.115) for i in [0, 5813, 6402, 6993, 7582, 8171, 8762, 9351, 9940, 10531, 11120, 11711, 12300, 12889, 13480, 14069, 14658, 15249, 15838, 16428, 17018, 17607, 18198, 18787, 19376, 19967, 20556, 21146, 21736, 22325, 22916, 23505, 24094, 24685, 25274, 25863,
             26454, 27043, 27634, 28223, 28812, 29403, 29992, 30581, 31172, 31761, 32352, 32941, 33530, 34121, 34710, 35299, 35890, 36479, 37069, 37659, 38248, 38839, 39428, 40017, 40608, 41197, 41786, 42377, 42966, 43557, 44146, 44735, 45326, 45915, 46504]]
    data1 = [int(i*1.115) for i in [0, 5813, 6402, 6993, 7582, 8171, 8762, 9351, 9940, 10531, 11120, 11711, 12300, 12889, 13480, 14069, 14658, 15249, 15838, 16428, 17018, 17607, 18198, 18787, 19376, 19967, 20556, 21146, 21736, 22325, 22916, 23505, 24094, 24685, 25274, 25863,
             26454, 27043, 27634, 28223, 28812, 29403, 29992, 30581, 31172, 31761, 32352, 32941, 33530, 34121, 34710, 35299, 35890, 36479, 37069, 37659, 38248, 38839, 39428, 40017, 40608, 41197, 41786, 42377, 42966, 43557, 44146, 44735, 45326, 45915, 46504]]
    data2 = [int(i*1.115) for i in [0, 29065, 32014, 34963, 37912, 40860, 43809, 46757, 49706, 52655, 55604, 58553, 61501, 64450, 67398, 70347, 73296, 76245, 79194, 82142, 85091, 88039, 90988, 93937, 96886, 99835, 102783, 105732, 108680, 111629, 114578, 117527, 120476, 123424, 126373, 129321, 132270,
             135219, 138168, 141117, 144065, 147013, 149962, 152911, 155860, 158809, 161758, 164706, 167654, 170603, 173552, 176501, 179450, 182399, 185347, 188295, 191244, 194193, 197142, 200091, 203040, 205988, 208936, 211885, 214834, 217783, 220732, 223681, 226629, 229577, 232526]]
    data3 = [int(i*1.115) for i in [0, 29065, 32014, 34963, 37912, 40860, 43809, 46757, 49706, 52655, 55604, 58553, 61501, 64450, 67398, 70347, 73296, 76245, 79194, 82142, 85091, 88039, 90988, 93937, 96886, 99835, 102783, 105732, 108680, 111629, 114578, 117527, 120476, 123424, 126373, 129321, 132270,
             135219, 138168, 141117, 144065, 147013, 149962, 152911, 155860, 158809, 161758, 164706, 167654, 170603, 173552, 176501, 179450, 182399, 185347, 188295, 191244, 194193, 197142, 200091, 203040, 205988, 208936, 211885, 214834, 217783, 220732, 223681, 226629, 229577, 232526]]
    data4 = [int(i*1.115) for i in [0, 9781, 10773, 11766, 12757, 13749, 14742, 15734, 16727, 17718, 18711, 19703, 20696, 21688, 22681, 23673, 24664, 25657, 26649, 27642, 28634, 29627, 30618, 31611, 32603, 33595, 34588, 35579, 36572, 37564, 38557, 39549, 40542, 41534, 42526, 43518,
             44510, 45503, 46495, 47488, 48479, 49472, 50464, 51457, 52449, 53440, 54433, 55425, 56418, 57410, 58403, 59395, 60387, 61379, 62372, 63364, 64356, 65349, 66340, 67333, 68325, 69318, 70310, 71303, 72294, 73286, 74279, 75271, 76264, 77256, 78248]]
    data5 = [int(i*1.115) for i in [0, 48905, 53867, 58828, 63789, 68750, 73713, 78674, 83635, 88596, 93558, 98519, 103480, 108442, 113404, 118365, 123326, 128287, 133250, 138211, 143172, 148133, 153095, 158056, 163018, 167979, 172941, 177902, 182863, 187824, 192787, 197748, 202709, 207670, 212632, 217593,
             222555, 227516, 232478, 237439, 242400, 247361, 252324, 257285, 262246, 267207, 272169, 277131, 282092, 287053, 292015, 296976, 301937, 306898, 311861, 316822, 321783, 326744, 331706, 336668, 341629, 346590, 351552, 356513, 361474, 366436, 371398, 376359, 381320, 386281, 391244]]
    hit0 = 5
    hit1 = 5
    hit2 = 1
    hit3 = 1
    hit4 = 0
    hit5 = 0

    形态 = ["共鸣", "幻鬼"]
    MP = [1097, 8229]
    无色消耗 = 7

    def 形态变更(self, 形态, char: Character):
        if 形态 == "共鸣":
            self.hit0 = 5
            self.hit1 = 5
            self.hit2 = 1
            self.hit3 = 1
            self.hit4 = 0
            self.hit5 = 0
        else:
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 0
            self.hit3 = 0
            self.hit4 = 5
            self.hit5 = 1
        pass


class 技能23(主动技能):
    名称 = '灭魂极影剑·止煞'
    所在等级 = 100

    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    CD = 290.0
    data0 = [int(i*1.146) for i in [0, 23439, 28875, 34311, 39746, 45182, 50617, 56052, 61488, 66923, 72358, 77794, 83229, 88664, 94100, 99535, 104970, 110406, 115841, 121276, 126712, 132147, 137583, 143018, 148453, 153889, 159324, 164759, 170195, 175630, 181065, 186501, 191936, 197371, 202807, 208242,
             213677, 219113, 224548, 229985, 235420, 240855, 246291, 251726, 257161, 262597, 268032, 273468, 278903, 284338, 289774, 295209, 300644, 306080, 311515, 316950, 322386, 327821, 333256, 338692, 344127, 349563, 354998, 360433, 365869, 371304, 376739, 382175, 387610, 393045, 398481]]
    data1 = [int(i*1.146) for i in [0, 6697, 8250, 9802, 11356, 12909, 14461, 16014, 17568, 19120, 20673, 22227, 23779, 25332, 26885, 28438, 29991, 31544, 33097, 34650, 36203, 37757, 39309, 40862, 42414, 43968, 45521, 47073, 48627, 50180, 51732, 53285, 54839, 56391, 57944, 59498,
             61051, 62603, 64156, 65710, 67262, 68815, 70369, 71921, 73474, 75028, 76580, 78133, 79686, 81239, 82792, 84345, 85898, 87451, 89004, 90556, 92110, 93663, 95215, 96769, 98322, 99874, 101428, 102981, 104533, 106086, 107640, 109192, 110745, 112299, 113851]]
    data2 = [int(i*1.146) for i in [0, 23439, 28875, 34311, 39746, 45182, 50617, 56052, 61488, 66923, 72358, 77794, 83229, 88664, 94100, 99535, 104970, 110406, 115841, 121276, 126712, 132147, 137583, 143018, 148453, 153889, 159324, 164759, 170195, 175630, 181065, 186501, 191936, 197371, 202807, 208242,
             213677, 219113, 224548, 229985, 235420, 240855, 246291, 251726, 257161, 262597, 268032, 273468, 278903, 284338, 289774, 295209, 300644, 306080, 311515, 316950, 322386, 327821, 333256, 338692, 344127, 349563, 354998, 360433, 365869, 371304, 376739, 382175, 387610, 393045, 398481]]
    data3 = [int(i*1.146) for i in [0, 20091, 24750, 29409, 34068, 38726, 43385, 48044, 52703, 57362, 62021, 66680, 71339, 75997, 80656, 85315, 89974, 94633, 99292, 103951, 108610, 113270, 117927, 122586, 127245, 131905, 136564, 141223, 145882, 150541, 155199, 159858, 164517, 169176, 173835, 178494, 183153,
             187812, 192471, 197129, 201788, 206447, 211106, 215765, 220424, 225083, 229742, 234400, 239059, 243718, 248377, 253036, 257695, 262354, 267013, 271671, 276330, 280989, 285648, 290307, 294966, 299625, 304284, 308943, 313601, 318260, 322919, 327578, 332237, 336897, 341556]]
    data4 = [int(i*1.146) for i in [0, 31253, 38500, 45747, 52994, 60241, 67488, 74736, 81983, 89230, 96477, 103725, 110972, 118220, 125467, 132714, 139961, 147208, 154455, 161702, 168949, 176197, 183444, 190691, 197938, 205185, 212432, 219679, 226927, 234174, 241421, 248668, 255915, 263162, 270409, 277657,
             284904, 292151, 299398, 306646, 313893, 321141, 328388, 335635, 342882, 350129, 357376, 364623, 371871, 379118, 386365, 393612, 400859, 408106, 415353, 422601, 429848, 437095, 444342, 451589, 458836, 466083, 473330, 480578, 487825, 495072, 502320, 509567, 516814, 524062, 531309]]
    data5 = [int(i*1.146) for i in [0, 31253, 38500, 45747, 52994, 60241, 67488, 74736, 81983, 89230, 96477, 103725, 110972, 118220, 125467, 132714, 139961, 147208, 154455, 161702, 168949, 176197, 183444, 190691, 197938, 205185, 212432, 219679, 226927, 234174, 241421, 248668, 255915, 263162, 270409, 277657,
             284904, 292151, 299398, 306646, 313893, 321141, 328388, 335635, 342882, 350129, 357376, 364623, 371871, 379118, 386365, 393612, 400859, 408106, 415353, 422601, 429848, 437095, 444342, 451589, 458836, 466083, 473330, 480578, 487825, 495072, 502320, 509567, 516814, 524062, 531309]]
    data6 = [int(i*1.146) for i in [0, 93759, 115502, 137243, 158985, 180726, 202468, 224209, 245950, 267692, 289433, 311176, 332917, 354659, 376400, 398141, 419883, 441624, 463366, 485107, 506850, 528591, 550333, 572074, 593815, 615557, 637298, 659040, 680781, 702524, 724265, 746006, 767748, 789489, 811231, 832972, 854713,
             876455, 898196, 919939, 941680, 963422, 985163, 1006905, 1028646, 1050387, 1072129, 1093870, 1115613, 1137354, 1159096, 1180837, 1202578, 1224320, 1246061, 1267803, 1289544, 1311287, 1333028, 1354770, 1376511, 1398252, 1419994, 1441735, 1463477, 1485218, 1506961, 1528702, 1550443, 1572185, 1593926]]
    hit0 = 1
    hit1 = 7
    hit2 = 1
    hit3 = 7
    hit4 = 1
    hit5 = 1
    hit6 = 1

    MP = [3752, 7505]
    无色消耗 = 15


class classChange(Character):
    def __init__(self):
        self.实际名称 = 'ghostblade'
        self.名称 = '极诣·剑影'
        self.角色 = '鬼剑士(男)'

        self.职业 = '剑影'
        self.武器选项 = ['太刀']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '太刀'
        self.防具类型 = '皮甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.06

        super().__init__()

    def set_skill_info(self, info):
        super().set_skill_info(info, rune_start_lv=15)

    def 技能倍率加成(self, min: int, max: int, x: float, exc=[int], type="all") -> None:
        for i in self.技能栏:
            if i.所在等级 >= min and i.所在等级 <= max and i.所在等级 not in exc:
                if i.是否有伤害 == 1:
                    if type == "all" or (type == "active" and i.是否主动 == 1):
                        i.倍率 *= (1 + x * self.技能伤害增加增幅)
                if i.名称 == '鬼连斩：极' and type == "all":
                    i.额外加成 *= (1 + x * self.技能伤害增加增幅)

    def 伤害计算(self):

        data = super().伤害计算()
        skill_dict = data['skills']

        鬼连斩极 = self.get_skill_by_name("鬼连斩：极")
        鬼连斩 = self.get_skill_by_name("鬼连斩")
        damage = 0
        if '鬼连斩' in skill_dict and 鬼连斩极.等级 > 0 and 鬼连斩.等级 > 0:
            倍率 = 鬼连斩极.获取百分比(鬼连斩.等级) * (1 + 鬼连斩.TP等级 *
                                       鬼连斩.TP成长) * 鬼连斩.被动倍率
            count = skill_dict['鬼连斩']['count']
            damage = 倍率 * self.伤害指数 * (self.伤害比例.get("直伤", 0.0)) / 100
            for item in ['中毒', '灼烧', '感电', '出血']:
                系数 = self.伤害系数.get(item, 0.0)
                # 出血 叠层 1层1%出血伤害 满10%
                if item == '出血':
                    系数 *= 1.1
                # 直伤转换的异常处理：直伤伤害*异常比例*异常系数
                damage += 倍率 * self.伤害指数 * \
                    (self.伤害比例.get(item, 0.0) * 系数) / 100
            data['skills']['鬼连斩：极'] = {
                'name': '鬼连斩：极',
                'rate': 鬼连斩.被动倍率,
                'cd': skill_dict['鬼连斩']['cd'],
                'mp': 0,
                'damage': damage * count,
                'count': count,
                'level': 1,
                'cosume_cube_frag': 0,
                'cd_o': skill_dict['鬼连斩']['cd_o'],
                'atk_rate': 鬼连斩极.获取百分比(鬼连斩.等级) * (1 + 鬼连斩.TP等级 * 鬼连斩.TP成长)
            }
        data['total_data'] += damage
        dps = 0
        for temp in data['skills']:
            skill = data['skills'][temp]
            try:
                dps += (skill['damage']/skill['count'])/skill['cd']
            except:
                pass
        data['dps'] = dps
        return data
